/* 切片-空(nil)切片
 *
 * @link: https://www.runoob.com/go/go-slice.html
 */

// 包申明
package main

// 引入包
import (
	"fmt"
)

/*
Go 语言切片是对数组的抽象。
Go 数组的长度不可改变，在特定场景中这样的集合就不太适用，Go中提供了一种灵活，功能强悍的内置类型切片("动态数组"),与数组相比切片的长度是不固定的，可以追加元素，在追加时可能使切片的容量增大。
*/

// 一个切片在未初始化之前默认为 nil，长度为 0
// 入口函数
func main() {
	var numbers []int

	printSlice(numbers)

	if numbers == nil {
		fmt.Println("切片是空的")
	}
}

func printSlice(x []int) {
	fmt.Printf("len=%d cap=%d slice=%v\n", len(x), cap(x), x)
}

/*
运行结果:
len=0 cap=0 slice=[]
切片是空的
*/
